1. Technical Field
This invention relates to computer programming, and more particularly to displaying an animation of a computer program's execution.
2. Description of the Prior Art
A major challenge facing software testers is that of understanding the effect that test data has on a subject program. Techniques such as program animation bridge the gulf between the abstractness of test data and the idiomatic logic of an application under test, greatly enhancing the programmer's understanding of his or her program's operation. The programmer can then use this understanding to change the program's design to improve its performance.
Animation graphically displays the effect of executing one or more test cases for a computer program. The prior art in program animation may be categorized into two general areas: interpretive animation including SMALLTALK, ACTOR, etc., and executive animation such as in IBM's INSPECT FOR PL/I AND C/370 and PLITEST products which animate in "real time."
An interpretive animator uses an execution trace of a previously execution of the program as the source of its information about the program's execution. Interpretive animators are in control at all times, making possible such functions as reverse execution and path tracing. Duisberg, U.S. Pat. No. 4,821,220, entitled "System for Animating Program Operation and Displaying Time-based Relationships," discloses an interpretive-type animator for software objects. Duisberg's system uses time-based triggers to control a replay of an execution. In operation, the system records the original execution, saving time stamps at critical moments during the execution. Later, during replay, these time stamps are used to regulate and characterize the original program execution.
The program debuggers PLITEST, COBTEST and INSPECT of the International Business Machines Corporation (IBM), all are examples of executive animators. These products operate in real-time, and use color to highlight only the current focus of execution (i.e., the current executed statement or module) as displayed on a user's screen.
Algorithm animation is a distant cousin of interpretive and executive animation. Algorithm animators provide a scripted animation depicting a variety of classical programming data structures. These structures are animated so as to show traversal and data manipulation. Brown et al., U.S. Pat. No. 4,736,321, entitled "Communication Method Between an Interactive Language Processor Workspace and External Processes" is an example of an algorithm animator. Brown et al. disclose the invocation of an external process without having to suspend a currently executing process, passing arguments to an external process and receiving results therefrom in a currently executing APL workspace.
Saito et al., U.S. Pat. No. 4,730,315, entitled "Diagrammatic Method of Testing Program," discloses a method for correlating FORTRAN source code and a directed acyclic graph ("digraph") thereof in a step, edit, and retry interactive debug facility. Synchronism is preserved between the source code and the digraph by use of FORTRAN reserved words as pointers.
Beckett, U.S. Pat. No. 4,080,650, entitled "Facilitating Return From an On-line Debugging Program to a Target Program Breakpoint," discloses an interactive debug utility in which control is selectively passed from within one process to an external process and returned via breakpoints.
There is a need for animating the execution of a computer program in a manner which visually illustrates how the parts of a program respond to various test cases by identifying parts which reach certain user-selected thresholds during their execution.